package com.zbkj.service.service;

import com.zbkj.common.model.order.OrderDetail;
import com.zbkj.common.model.product.Product;
import com.zbkj.common.request.PageParamRequest;
import com.zbkj.common.model.traceable.ZfbDeviceBatches;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.common.request.ZfbDeviceBatchesSaveRequest;
import com.zbkj.common.request.ZfbDeviceBatchesSearchRequest;
import com.zbkj.common.response.ZfbDeviceBatchesPageDataResponse;

import java.util.List;
/**
* @author dazongzi
* @description ZfbDeviceBatchesService 接口
* @date 2025-06-11
*/
public interface ZfbDeviceBatchesService extends IService<ZfbDeviceBatches> {

    Boolean create(ZfbDeviceBatchesSaveRequest zfbDeviceBatchesSaveRequest);

    /**
     * 分页查询设备批次表
     * @param request 查询条件
     * @param pageParamRequest 分页对行
     * @return 查询结果
     */
    List<ZfbDeviceBatchesPageDataResponse> getList(ZfbDeviceBatchesSearchRequest request, PageParamRequest pageParamRequest);

    boolean removeByIdAdmin(Integer batchesId);

    void bindDeviceItems(Product product);

    void lockDevice(Integer id, Integer payNum, Integer userId, String orderNo);

    void payDeviceBatches(List<OrderDetail> orderDetailList, Integer id);
}